home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / midi / gfft.lha / gfft-2.03 / source / gfft-2.03-source.lha / okwritec.c < prev    next >
C/C++ Source or Header  |  1996-01-02  |  2KB  |  52 lines

  1. /***************************************************************************
  2.  *          Copyright (C) 1994  Charles P. Peterson                  *
  3.  *         4007 Enchanted Sun, San Antonio, Texas 78244-1254             *
  4.  *              Email: Charles_P_Peterson@fcircus.sat.tx.us                *
  5.  *                                                                         *
  6.  *          This is free software with NO WARRANTY.                  *
  7.  *          See gfft.c, or run program itself, for details.              *
  8.  *              Support is available for a fee.                      *
  9.  ***************************************************************************
  10.  *
  11.  * Program:     gfft--General FFT analysis
  12.  * File:        okwritec.c
  13.  * Purpose:     Write the (complex) results of an fft analysis
  14.  * Author:      Charles Peterson (CPP)
  15.  * History:     23-August-1993 CPP; Created.
  16.  * Comment:
  17.  */
  18.  
  19. #include <stdio.h>
  20. #include <math.h>
  21. #include "gfft.h"
  22. #include "settings.h" /* Rate */
  23.  
  24. void ok_writec (float *data, unsigned long data_count)
  25. {
  26.     double frequency;
  27.     double nyquist_frequency = Rate / 2.0L;
  28.     double scaled_frequency = 2.0L * nyquist_frequency / data_count;
  29.     int i;
  30.  
  31.     if (data_count > 0)
  32.     {
  33.     fprintf (WritePtr, "%-20.12g %-20.12g %-20.12g\n", 
  34.          0.0L, data[0], 0.0L);
  35.     }
  36.  
  37.     for (i = 2; i < data_count; i += 2)
  38.     {
  39.     frequency = scaled_frequency * (i / 2);
  40.     fprintf (WritePtr, "%-20.12g %-20.12g %-20.12g\n", 
  41.          frequency, data[i], data[i+1]);
  42.     }
  43.     if (data_count > 1)
  44.     {
  45.     fprintf (WritePtr, "%-20.12g %-20.12g %-20.12g\n", 
  46.          nyquist_frequency, data[1], 0.0L);
  47.     }
  48. }
  49.  
  50.  
  51.       
  52.